package gdconf

import (
	"server_cluster/common/logger"
)

// 装备技能组配置表

type EquipSkillGroupConfig struct {
	Id         int32    `csv:"Id" gorm:"primary_key;autoIncrement:false"` // 唯一id
	SkillGroup int32    `csv:"RandomGroup,omitempty"`                     // 技能组
	Skill      IntArray `csv:"SkillGroup,omitempty"`                      // 技能
	Weight     int32    `csv:"Weight,omitempty"`                          // 权重
}

func (e *EquipSkillGroupConfig) TableName() string {
	return "config_equip_skill_group"
}

func (g *GameDataConfig) saveEquipSkillGroupConfig() {
	saveTableToDb[EquipSkillGroupConfig](g.Db, readTable[EquipSkillGroupConfig](g.CsvPathPrefix+"equip_skillgroup.csv"))
}

func (g *GameDataConfig) loadEquipSkillGroupConfig() {
	g.GameDataMaps.EquipSkillGroupConfigMap = make(map[int32]*EquipSkillGroupConfig)
	for _, equipSkillGroupConfig := range loadTableFromDb[EquipSkillGroupConfig](g.Db) {
		g.GameDataMaps.EquipSkillGroupConfigMap[equipSkillGroupConfig.Id] = equipSkillGroupConfig
	}
	logger.Info("EquipSkillGroupConfig Count: %v", len(g.GameDataMaps.EquipSkillGroupConfigMap))
}

func GetEquipSkillGroupConfig(id int32) *EquipSkillGroupConfig {
	value, exist := CONF.GameDataMaps.EquipSkillGroupConfigMap[id]
	if !exist {
		logger.Error("[ConfigNotFound] EquipSkillGroupConfig, id: %v", id)
		return nil
	}
	return value
}

func GetEquipSkillGroupConfigMap() map[int32]*EquipSkillGroupConfig {
	return CONF.GameDataMaps.EquipSkillGroupConfigMap
}
